package main

func main() {
	merge([]int{1, 2, 4, 5, 6, 0}, 5, []int{3}, 1)
}

func merge(nums1 []int, m int, nums2 []int, n int) {
	if m == 0 {
		copy(nums1, nums2)
		return
	}

	i := m - 1
	j := n - 1
	k := m + n - 1

	for i >= 0 && j >= 0 {
		if nums1[i] < nums2[j] {
			nums1[k] = nums2[j]
			j--
			k--
		} else {
			nums1[k] = nums1[i]
			i--
			k--
		}
	}

	for ; j >= 0; j-- {
		nums1[k] = nums2[j]
		k--
	}
}
